本文是学习GB-T 33481-2016 党政机关电子印章应用规范. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们
本标准规定了党政机关电子公文中应用电子印章的通用要求,制章要求、用章要求、验章要求以及
相关的安全要求;本标准还规定了签章组件的应用接口和相关约定。
本标准适用于非涉密的电子印章系统建设,电子印章的制作、管理、使用和验证。其他场景的电子
印章系统建设可在满足行业相关要求的前提下参照执行。
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文
件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T 15843.1—2008 信息技术 安全技术 实体鉴别 第1部分:概述
GB/T 16264.8—2005 信息技术开放系统互连 目 录
第8部分:公钥和属性证书框架
GB/T 16264.8—2005、GB/T
15843.1—2008界定的以及下列术语和定义适用于本文件。
3.1
公钥基础设施 Public Key Infrastructure;PKI
支持公钥管理体制的基础设施,提供鉴别、加密、完整性和不可否认性服务。
[GB/T 16264.8—2005,3.3.45]
3.2
数字证书 digital certificate
用户的公钥连同其他信息,并由发布该证书的证书认证机构的私钥进行加密使其不可伪造。
3.3
数字签名 digital signature
附加在数据单元上的一些数据,或是对数据单元所作的密码变换,这种数据或变换允许数据单元的
接受者确认数据单元的来源和完整性,并防止数据单元被人(例如接收者)伪造。
[GB/T 15843. 1—2008,3. 1.2]
3.4
电子印章 electronic seal
一种由制作者签名的包括持有者信息和图形化内容的数据,可用于签署电子文件。
3.5
电子印章系统 electronic seal system
支持电子印章制作、管理、使用和验证等过程的系统的统称。
电子印章管理通用要求如下:
GB/T 33481—2016
a) 加盖在电子公文上的电子印章应具有与实物印章一致的外观;
b) 电子印章的管理、使用方式参照实物印章管理的有关要求;
c) 电子印章的制作和验证过程应依托电子印章系统实现;
d)
电子印章系统应综合应用数字图像技术和密码技术,保证盖章后的电子公文在传递、使用过程
中的真实性、完整性、不可抵赖性和可验证性;
e)
电子印章系统的运行应依托于公钥基础设施提供信任基础保障,应符合国家电子政务电子认
证管理的相关要求;
f) 电子印章应存储于密钥对载体(智能密码钥匙UKey
或系统)中,满足离线或在线用章需求;
g) 密钥对载体、电子印章和签章的数据格式应遵循国家密码局的相关规范。
制章管理应满足以下要求:
a) 电子印章的制作审批过程应参照实物印章;
b) 制章系统应参照实物印章管理方式,具有相对独立的运行环境和操作流程;
c) 制章过程中应记录申请、审批、制作、发布等信息。
电子印章的制章功能宜包括申请、审批、制作、维护管理、状态发布5个部分,其中申请、审批可在电
子印章系统内实现。
具体功能应满足以下要求:
a)
制章申请:制章申请信息应包括制章申请机构、电子印章内容、申请时间、电子印章使用范围、
电子印章有效期、申请原因等内容。发起申请的操作员信息应同时记录。如该流程在电子印
章系统内实现,应由操作员对上述信息进行数字签名;
b)
制章审批:由具有审批权限的操作员依据相关电子印章制作管理规范对制章申请信息进行审
核,给出审核意见,并记录审批结果。如该过程由系统审批流程实现,应由审批员对上述信息
进行数字签名;
c)
电子印章制作:由电子印章制章系统制作电子印章。电子印章由制章者私钥进行数字签名,被
签名内容和电子印章结构按照国家密码局的相关要求。电子印章应存储在密钥对载体(智能
密码钥匙,或是集中系统)中;
d)
电子印章发布:将电子印章及其状态信息进行公布,为验章和各种应用提供查询服务。电子印
章发布内容应包括制章基础信息、电子印章状态信息和有效期,还可包括电子印章所属组织和
使用范围等信息。
电子印章维护包括查看、注销、停用、恢复和变更等功能操作,并将各种操作状态结果传递给电子印
章发布系统;还包括电子印章制作的日志信息查看。集中存储时应将电子印章与部门或用户绑定。
制章安全总体要求如下:
GB/T 33481—2016
a) 操作员进入系统时,应进行基于密码技术的身份识别和权限验证;
b) 应使用密码技术对系统中的制章数据进行防篡改保护。
制章申请的安全要求如下:
a)
采用信息系统进行制章申请方式的,操作员应对申请信息做数字签名,由接收服务端进行验
签;采用纸质单据进行制章申请方式的,应有操作员的签字;
b) 应记录申请信息明细。
制章审批的安全要求如下:
a)
应通过密码技术确保审批信息与申请信息的一致性,其内容应与相关电子印章制作管理规范
相符合;
b)
采用信息系统进行制章审批方式的,应对申请签名进行验证,对审批内容和审批意见做数字签
名,由接收服务端进行验签;采用纸质单据进行制章审批方式的,应有审批者的审批意见和
签字;
c) 应记录审批信息明细。
电子印章制作的安全要求如下:
a) 应对电子印章审批信息进行签名验证;
b) 应对电子印章制作结果由制章服务做数字签名;
c) 制作完成的电子印章应存储在对应的密钥对载体中;
d) 应记录制作信息明细。
电子印章管理的安全要求如下:
a) 对电子印章的状态信息变更结果,应由操作员进行数字签名;
b) 在发布环节中,应确保电子印章信息状态的完整性、真实性;
c) 应记录管理操作信息明细。
用章应包括用章申请、用章审批、用章操作;其中用章申请、用章审批可在电子印章系统内实现。
用章管理要求如下:
a) 参照实物用章的保管和使用要求制定电子印章的用章管理办法;
b) 用章单位应指定专人保管保存电子印章的密钥对载体;
c) 应对用章申请、审批、用章过程进行记录;
d) 电子印章丢失或变更时,应及时到制章机构进行登记报备。
GB/T 33481—2016
用章流程应满足以下要求:
a)
用章申请:用章申请信息应包括申请人、隶属机构、申请时间、电子印章应用对象等内容。发起
申请的操作员信息应同时记录。如果该过程是由用章系统申请流程实现的,应由操作员对上
述信息进行数字签名,审核接收服务端进行验签;
b)
用章审核:由具有审核权限的操作员依据相关电子印章用章管理规范对电子印章申请内容进
行审核,同时要核对电子印章自身的有效性,给出审核意见,应记录审核结果。如果该过程是
由用章系统审核流程实现的,应由审核员对上述信息进行数字签名,由接收服务端进行验签;
c)
用章操作:审核通过后,使用用章软件和硬件对用章对象加盖电子印章。操作流程包括将电子
印章放置到对象指定位置,用电子印章对应的私钥对已经含有电子印章内容的对象进行整体
数字签名,并将签名结果放置到对象相应位置,形成完整的签章信息。用章时应记录用章对
象、电子印章、操作者、操作者签名、用章时间等相关记录日志。
用章申请的安全要求如下:
a) 应对申请信息进行数字签名;
b) 应记录申请信息明细。
用章审批的安全要求如下:
a) 应确保审批信息与申请信息的一致性;
b) 应对审批内容和审批意见进行数字签名;
c) 应记录审批信息明细。
公文用章的安全要求如下:
a)
用章前应对已审批的电子印章、待使用的电子印章以及审批信息、待用章文件的一致性进行检
查验证;
b) 应记录公文用章明细并做数字签名。
验章分为本地验证和在线验证两类:
a)
本地验证:用制章系统的证书验证电子印章的真实性,用电子印章的公钥验证公文文件的真实
和完整性;
注:本地验证只能验证电子印章真实性,不能校验电子印章及数字证书的有效性。
b)
在线验证:在本地验证结果的基础上,通过网络查询制章发布系统,确定公文盖章时该电子印
章及数字证书的有效性。
GB/T 33481—2016
验证流程应包括验证数字证书、电子印章真实性和有效性、验证公文真实性,并返回验证结果。
验证结果的显示信息应包括验证方式(在线验证或本地验证)、文件的完整性、电子印章的真实性、
数字证书的真实性;如果是在线验证,还应包括电子印章的有效性、数字证书的有效性。
函数返回值要求适用于除8.2.13以外的所有签章客户端接口。具体返回值定义如表1所示。
表 1 函数返回值说明
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
印章图像常量要求适用于8.2.5和8.2.12。具体取值及含义如表2所示。
表 2 印章图像常量说明
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
接口函数调用中有多个返回值的,在函数中使用字节数组和数组长度结合的方式定义,并标注
[out]或[out/in]字样。当传入字节数组为空(NULL)
时,由函数的实现者确定字节数组所需长度并通
过数组长度返回,由函数调用者申请对应长度的空数组后再次调用获得返回值。
带有电子签章文件的印章应随时可见,且在不联网的情况下可验章。
功能说明:
返回签章组件提供者信息。
GB/T 33481—2016
接口原型:
int OES GetProviderlnfo(unsigned char* puchName, int* piNameLen,
unsigned char* puchCompany, int* piCompanyLen,
unsigned charx puchVersion, int* piVersionLen,
unsigned char* puchExtend,int* piExtendLen)
参数说明(8个参数):
参数1:[out] puchName 名称(UTF-8 编码);
参数2:[out/in] piNameLen 名称长度;
参数3:[out] puchCompany 公司名称(UTF-8 编码);
参数4:[out/in] piCompanyLen 公司名称长度;
参数5:[out] puchVersion 版本(UTF-8 编码);
参数6:[out/in] piVersionLen 版本长度;
参数7:[out] puchExtend 扩展信息(UTF-8 编码);
参数8:[out/in] piExtendLen 扩展信息长度。
返回值说明:
调用成功返回 OES OK, 否则是错误代码。
功能说明:
获取电子印章列表,该函数用于进行印章名称到标识的转换。
接口原型:
int OES GetSealList(unsigned char* puchSealListData,int*
piSealListDataLen) 参数说明(2个参数):
参数1:[out] puchSealListData 印章列表数据(UTF-8 编码);
参数2:[out/in] piSealListDataLen 印章列表数据长度。
返回值说明:
调用成功返回 OES OK, 否则是错误代码。
功能说明:
获取指定标识的电子印章数据。
接口原型:
int OES GetSeal(unsigned charx puchSealld,int iSealldLen,
unsigned char* puchSealData,int* piSealDataLen)
参数说明(3个参数):
参数1:[in] puchSealld 印章标识或名称(字符串);
参数2:[in] iSealldLen 印章标识或名称长度;
参数3:[out] puchSealData 印章数据;
参数4:[out/in] piSealDataLen 印章数据长度。
返回值说明:
调用成功返回 OES OK, 否则是错误代码。
功能说明:
GB/T 33481—2016
获取电子印章信息。
接口原型:
int OES GetSealInfo(unsigned char* puchSealData,int iSealDataLen,
unsigned char* puchSealld,int* piSealldLen,
unsigned char* puchVersion,int* piVersionLen,
unsigned char* puchVenderld,int* piVenderldLen,
unsigned char* puchSealType,int* piSealTypeLen,
unsigned char* puchSealName,int* piSealNameLen,
unsigned char* puchCertInfo,int* piCertInfoLen,
unsigned char* puchValidStart,int* piValidStartLen,
unsigned char* puchValidEnd,int* piValidEndLen,
unsigned char* puchSignedDate,int* piSignedDateLen,
unsigned char* puchSignerName,intx piSignerNameLen,
unsigned char * puchSignMethod,int* piSignMethodLen)
参数说明(24个参数):
参数1:[in] puchSealData 印章数据;
参数2:[in] iSealDataLen 印章数据长度;
参数3:[out] puchSealld 头信息-印章标识;
参数4:[out/in] piSealldLen 头信息-印章标识长度;
参数5:[out] puchVersion 头信息-版本;
参数6:[out/in] piVersionLen 头信息-版本长度;
参数7:[out] puchVenderld 头信息-厂商标识;
参数8:[out/in] piVenderldLen 头信息-厂商标识长度;
参数9:[out] puchSealType 印章信息-印章类型;
参数10:[out/in] piSealTypeLen 印章信息-印章类型长度;
参数11:[out] puchSealName 印章信息-印章名称;
参数12:[out/in] piSealNameLen 印章信息-印章名称长度;
参数13:[out] puchCertInfo 印章信息-证书列表信息;
参数14:[out/in] piCertInfoLen 印章信息-证书列表信息长度;
参数15:[out] puchValidStart 印章信息-有效起始时间;
参数16:[out/in] piValidStartLen 印章信息-有效起始时间长度;
参数17:[out] puchValidEnd 印章信息-有效结束时间;
参数18:[out/in] piValidEndLen 印章信息-有效结束长度;
参数19:[out] puchSignedDate 印章信息-制作日期;
参数20:[out/in] piSignedDateLen 印章信息-制作日期长度;
参数21:[out] puchSignerName 签名信息-制章人;
参数22:[out/in] piSignerNameLen 签名信息-制章人长度;
参数23:[out] puchSignMethod 签名信息-制章签名方法;
参数24:[out/in] piSignMethodLen 签名信息-制章签名方法长度。
返回值说明:
调用成功返回 OES OK, 否则是错误代码。
GB/T 33481—2016
功能说明:
获取电子印章图像,该接口应在不插入智能密码钥匙时可用。
接口原型:
int OES GetSeallmage(unsigned char x puchSealData, int iSealDataLen,
int iRenderFlag,unsigned char* puchSeallmage,int* piSeallmageLen,
int* piSealWidth, int* piSealHeight)
参数说明(7个参数):
参数1:[in] puchSealData 印章数据;
参数2:[in] iSealDataLen 印章数据长度;
参数3:[in] iRenderFlag 绘制用途标记;
参数4:[out] puchSealImage 印章图像数据;
参数5:[out/in] piSeallmageLen 印章图像数据长度;
参数6:[out/in] piSealWidth 印章宽度(单位 mm);
参数7:[out/in] piSealHeight 印章高度(单位 mm)。
返回值说明:
调用成功返回OES OK, 否则是错误代码。
功能说明:
获取签名时间(时间戳或明文形式)。
接口原型:
int OES GetSignDateTime(unsigned charx puchSignDateTime,int*
piSignDateTimeLen)
参数说明(2个参数):
参数1:[out] puchSignDateTime 签名时间(字符时用UTF-8
编码;时间截时二进制值);
参数2:[out/in] piSignDateTimeLen 时间戳长度。
返回值说明:
调用成功返回OES OK, 否则是错误代码。
功能说明:
获取签名算法标识,该标识应遵循国家密码局的相关要求。
接口原型:
int OES GetSignMethod(unsigned char* puchSignMethod,int*
piSignMethodLen)
参数说明(2个参数):
参数1:[out] puchSignMethod 签名算法(UTF-8 编码);
参数2:[out/in] piSignMethodLen 签名算法长度。
返回值说明:
调用成功返回OES OK, 否则是错误代码。
功能说明:
GB/T 33481—2016
获取摘要算法标识,该标识应遵循国家密码局的相关要求。
接口原型:
int OES GetDigestMethod(unsigned char* puchDigestMethod,int*
piDigestMethodLen)
参数说明(2个参数):
参数1:[out] puchDigestMethod 摘要算法(UTF-8 编码);
参数2:[out/in] piDigestMethodLen 摘要算法长度。
返回值说明:
调用成功返回OES OK, 否则是错误代码。
功能说明:
代理计算摘要。
接口原型:
int OES Digest(unsigned char* puchData,int iDataLen,
unsigned char* puchDigestMethod,int iDigestMethodLen,
unsigned char* puchDigestValue,int* piDigestValueLen)
参数说明(6个参数):
参数1:[in] puchData 待摘要的数据;
参数2:[in] iDataLen 待摘要的数据长度;
参数3:[in] puchDigestMethod 摘要算法;
参数4:[in] iDigestMethodLen 摘要算法长度;
参数5:[out] puchDigestValue 摘要值;
参数6:[out/in] piDigestValueLen 摘要值长度。
返回值说明:
调用成功返回OES OK, 否则是错误代码。
8.2.10 代理计算签名
功能说明:
代理计算签名,如果计算前需要输入密码,应由组件实现者需要提供输入界面。
接口原型:
int OES Sign(unsigned charx puchSealld,int iSealldLen,
unsigned |
|
---|---|
unsigned |
|
unsigned |
|
unsigned |
|
unsigned |
|
参数说明(12个参数):
参数1:[in] puchSealld 印章标识;
参数2:[in] iSealldLen 印章标识长度;
参数3:[in] puchDocProperty 文档信息, 一般为
Signature.xml的绝对路径;
参数4:[in] iDocPropertyLen 文档信息长度;
参数5:[in] puchDigestData 摘要数据;
参数6:[in] iDigestDataLen 摘要数据长度;
GB/T 33481—2016
参数7:[in] puchSignMethod 签名算法;
参数8:[in] iSignMethodLen 签名算法长度;
参数9:[in] puchSignDateTime 签名时间;
参数10:[in] iSignDateTimeLen 签名时间长度;
参数11:[out] puchSignValue 签名值;
参数12:[out/in] piSignValueLen 签名值长度。
返回值说明:
调用成功返回OES OK, 否则是错误代码。
8.2.11 代理验证签名
功能说明:
代理验证签名,离线验证时该接口应在不插入智能密码钥匙时可用。
接口原型:
int OES Verify(unsigned char* puchSealData,int iSealDataLen,
unsigned charx puchDocProperty,int iDocPropertyLen,
unsigned char* puchDigestData,int iDigestDataLen,
unsigned charx puchSignMethod,int iSignMethodLen,
unsigned char* puchSignDateTime,int iSignDateTimeLen,
unsigned char* puchSignValue,int iSignValueLen,
int iOnline)
参数说明(11个参数):
参数1:[in] puchSealData 印章数据;
参数2:[in] iSealDataLen 印章数据长度;
参数3:[in] puchDocProperty 文档信息;
参数4:[in] iDocPropertyLen 文档信息长度;
参数5:[in] puchSignMethod 签名算法;
参数6:[in] iSignMethodLen 签名算法长度;
参数7:[in] puchSignDateTime 签名时间;
参数8:[in] piSignDateTimeLen 签名时间长度;
参数9:[in] puchSignValue 签名值;
参数10:[in] iSignValueLen 签名值长度;
参数11:[in] iOnline 是否在线验证。
返回值说明:
调用成功返回OES OK, 否则是错误代码。
8.2.12 获取电子签章图像
功能说明:
获取电子签章数据中的图像及其他信息,该接口应在不插入智能密码钥匙时可用。
接口原型:
int OES GetSignImage(unsigned char* puchSignedValueData,int
iSignedValueLen,
int iRenderFlag,
unsigned char* puchSeallmage,int* piSeallmageLen,
int* piSealWidth,int* piSealHeight)
GB/T 33481—2016
参数说明(7个参数):
参数1:[in] puchSignedValueData 签章数据;
参数2:[in] iSignedValueLen 签章数据长度;
参数3:[in] iRenderFlag 绘制用途标记;
参数4:[out] puchSeallmage 印章图像数据;
参数5:[out/in] piSeallmageLen 印章图像数据长度;
参数6:[out/in] piSealWidth 印章宽度(单位 mm);
参数7:[out/in] piSealHeight 印章高度(单位 mm)。
返回值说明:
调用成功返回OES OK, 否则是错误代码。
8.2.13 获取错误信息
功能说明:
获取错误信息。
接口原型:
int OES GetErrMessage(unsigned long errCode,
unsigned char* puchErrMessage,int* piErrMessageLen)
参数说明(3个参数):
参数1:[in] errCode 错误代码;
参数2:[out] puchErrMessage 错误信息(UTF-8 编码);
参数3:[out/in] piErrMessageLen 错误信息长度。
返回值说明:
无 。
style="width:3.09333in" />GB/T 33481—2016
更多内容 可以 GB-T 33481-2016 党政机关电子印章应用规范. 进一步学习